package com.ke.service;

import com.ke.pojo.Article;
import com.ke.pojo.ArticleComment;
import com.ke.pojo.AticleInsertPic;
import com.ke.pojo.BaseResp;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * @author bochen
 */
public interface ArticleService {
    /**
     * 查询最新文章
     * @param size 查询最新文章的个数
     * @return base
     */
    BaseResp findArticleByTime(int size);

    /**
     * 分页查询全部文章
     * @param page
     * @param size
     * @return
     */
    BaseResp findAll(Integer page, Integer size);


    /**
     * 通过id查询
     * @param id
     * @return
     */
    BaseResp findById(Integer id);

    /**
     * 修改或添加文章
     * @param article
     * @return
     */
    BaseResp updateOrInsert(Article article, HttpServletRequest request);


    /**
     * 上传文章的插图
     * @param aticleInsertPic
     * @return
     */
    Map upload(AticleInsertPic aticleInsertPic);

    /**
     * 点赞
     * @param id
     * @return
     */
    BaseResp addLikeNumber(Integer id);

    /**
     * 添加到收藏夹
     * @param id
     * @return
     */
    BaseResp addFactority(Integer id,HttpServletRequest request);

    /**
     * 验证是否已收藏
     * @param id
     * @param request
     * @return
     */
    BaseResp verifyFactority(Integer id, HttpServletRequest request);

    /**
     * 用户已登录时查询文章
     * @param id
     * @param request
     * @return
     */
    BaseResp findByIdUserLogin(Integer id,HttpServletRequest request);

    /**
     * 查询收藏夹全部文章
     * @param request
     * @return
     */
    BaseResp findAllFavorites(HttpServletRequest request);

    /**
     * 删除收藏夹文章
     * @param id
     * @return
     */
    BaseResp deleteFavorityArticleById(Integer id);

    /**
     * 评价文章
     * @param articleComment
     * @param request
     * @return
     */
    BaseResp addArticleCommend(ArticleComment articleComment, HttpServletRequest request);

    /**
     * 查询文章评论
     * @param id
     * @return
     */
    BaseResp findAllArticleCommend(Integer id);
}
